package Negocio;

import Conexion.Conexion;
import Datos.Camion;
import Datos.Carga;
import Datos.Personal;
import Datos.Ruta;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Mufase
 */
public class Negocio {

    private Conexion cnn;

    public Negocio() {
        this.cnn = new Conexion();
    }

    public void configurarConexion(String tabla) {
        cnn.setDriver("com.mysql.jdbc.Driver");
        cnn.setUrl("jdbc:mysql://localhost:3306/flota");
        cnn.setNombreBaseDatos("Flota");
        cnn.setNombreTabla(tabla);
        cnn.setPassword("");
        cnn.setUser("root");
    }
    // <editor-fold desc="nombre del bloque">

    public void ingresarAuxiliar(Personal per) {

        this.configurarConexion("Auxiliar");

        cnn.setEsSelect(false);
        cnn.setSentenciaSQL("insert into " + cnn.getNombreTabla()
                + " values ('"
                + per.getRut() + "','"
                + per.getNombre() + "','"
                + per.getOcupacion() + "')");

        System.out.println("SQL:" + cnn.getSentenciaSQL());

        cnn.conectar();
        cnn.cerrarConexion();
    }
    //</editor-fold>

    public void ingresarConductor(Personal per) {

        this.configurarConexion("Conductor");

        cnn.setEsSelect(false);
        cnn.setSentenciaSQL("insert into " + cnn.getNombreTabla()
                + " values ('"
                + per.getRut() + "','"
                + per.getNombre() + "','"
                + per.getOcupacion() + "')");

        System.out.println("SQL:" + cnn.getSentenciaSQL());

        cnn.conectar();
        cnn.cerrarConexion();
    }
    
    
    
       
    

    public Personal buscarPersonal(String rut) {
        Personal per = new Personal();

        this.configurarConexion("Conductor");

        cnn.setEsSelect(true);

        cnn.setSentenciaSQL("select*from " + cnn.getNombreTabla() + " where idConductor='" + rut + "'");

        cnn.conectar();
        try {
            if (cnn.getRst().next()) {
                per.setRut(cnn.getRst().getString("idConductor"));
                per.setNombre(cnn.getRst().getString("nombre"));
                per.setOcupacion(cnn.getRst().getString("ocupacion"));
            } else {

                this.configurarConexion("Auxiliar");

                cnn.setEsSelect(true);
                cnn.setSentenciaSQL("select*from " + cnn.getNombreTabla() + " where idAuxiliar='" + rut + "'");

                cnn.conectar();

                if (cnn.getRst().next()) {
                    per.setRut(cnn.getRst().getString("idAuxiliar"));
                    per.setNombre(cnn.getRst().getString("nombre"));
                    per.setOcupacion(cnn.getRst().getString("ocupacion"));
                }
            }

        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        cnn.cerrarConexion();
        return per;
    }

    public void eliminarPersonal(String rut) {
        this.configurarConexion("Conductor");

        cnn.setEsSelect(false);

        cnn.setSentenciaSQL("Delete from " + cnn.getNombreTabla() + " where idConductor='" + rut + "'");
        System.out.println("SQL:" + cnn.getSentenciaSQL());

        cnn.conectar();
        cnn.cerrarConexion();

        this.configurarConexion("Auxiliar");

        cnn.setSentenciaSQL("Delete from " + cnn.getNombreTabla() + " where idAuxiliar='" + rut + "'");
        System.out.println("SQL:" + cnn.getSentenciaSQL());

        cnn.conectar();
        cnn.cerrarConexion();

    }

    public void eliminarRegistroCarga(String cod) {
        this.configurarConexion("Carga");

        cnn.setEsSelect(false);

        cnn.setSentenciaSQL("Delete from " + cnn.getNombreTabla() + " where idCarga='" + cod + "'");
        System.out.println("SQL:" + cnn.getSentenciaSQL());

        cnn.conectar();
        cnn.cerrarConexion();


    }

    public Carga buscarCarga(String cod) {
        Carga car = new Carga();

        this.configurarConexion("Carga");
        cnn.setEsSelect(true);
        cnn.setSentenciaSQL("select*from " + cnn.getNombreTabla() + " where idCarga='" + cod + "'");
        cnn.conectar();
        try {
            if (cnn.getRst().next()) {
                car.setCodigoDespacho(Integer.parseInt(cnn.getRst().getString("idCarga")));
                car.setPeso(Double.parseDouble(cnn.getRst().getString("peso")));
                car.setValor(Integer.parseInt(cnn.getRst().getString("valor")));
            }

        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        cnn.cerrarConexion();
        return car;
    }

    public Camion buscarCamion(String pat) {
        Camion cam = new Camion();

        this.configurarConexion("Camion");

        cnn.setEsSelect(true);
        cnn.setSentenciaSQL("select*from " + cnn.getNombreTabla() + " where idCamion='" + pat + "'");
        cnn.conectar();
        try {
            if (cnn.getRst().next()) {
                cam.setPatente(cnn.getRst().getString("idCamion"));
                cam.setCapacidad(Double.parseDouble(cnn.getRst().getString("capacidad")));
                cam.setModelo(cnn.getRst().getString("modelo"));
                cam.setConductor(cnn.getRst().getString("Conductor_idConductor"));
                cam.setAux(cnn.getRst().getString("Auxiliar_idAuxiliar"));
            }

        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        cnn.cerrarConexion();
        return cam;
    }

    public Ruta buscarRuta(String pat) {
        Ruta ruta = new Ruta();

        this.configurarConexion("Ruta");

        cnn.setEsSelect(true);
        cnn.setSentenciaSQL("select*from " + cnn.getNombreTabla() + " where Camion_idCamion='" + pat + "'");
        cnn.conectar();
        try {
            if (cnn.getRst().next()) {
                ruta.setOrigen(cnn.getRst().getString("Origen"));
                ruta.setDestino(cnn.getRst().getString("Destino"));
                ruta.setCodDesCarga(cnn.getRst().getInt("Carga_idCarga"));
                ruta.setPatenteCamion(cnn.getRst().getString("Camion_idCamion"));
            }

        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
        cnn.setSentenciaSQL("select Camion.Conductor_idConductor,Camion.Auxiliar_idAuxiliar"
                + " from Ruta"
                + " inner join Camion on Ruta.Camion_idCamion=Camion.idCamion"
                + " where idCamion='" + pat + "'");
        cnn.conectar();
        try {
            if (cnn.getRst().next()) {
                ruta.setRutConductor(cnn.getRst().getString("Conductor_idConductor"));
                ruta.setRutAux(cnn.getRst().getString("Auxiliar_idAuxiliar"));
            }

        } catch (SQLException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }

        cnn.cerrarConexion();
        return ruta;

    }

    public void ingresarCarga(Carga car) {
        this.configurarConexion("Carga");

        cnn.setEsSelect(false);
        cnn.setSentenciaSQL("insert into " + cnn.getNombreTabla()
                + " values ("
                + car.getCodigoDespacho() + ","
                + car.getPeso() + ","
                + car.getValor() + ")");

        System.out.println("SQL:" + cnn.getSentenciaSQL());

        cnn.conectar();
        cnn.cerrarConexion();
    }

    public void ingresarCamion(Camion cam) {
        this.configurarConexion("Camion");

        cnn.setEsSelect(false);
        cnn.setSentenciaSQL("insert into " + cnn.getNombreTabla()
                + " values ('"
                + cam.getPatente() + "',"
                + cam.getCapacidad() + ",'"
                + cam.getModelo() + "','"
                + cam.getConductor() + "','"
                + cam.getAux() + "')");

        System.out.println("SQL:" + cnn.getSentenciaSQL());

        cnn.conectar();
        cnn.cerrarConexion();
    }

    public void ingresarRuta(Ruta ruta) {
        this.configurarConexion("Ruta");

        cnn.setEsSelect(false);
        cnn.setSentenciaSQL("insert into " + cnn.getNombreTabla() + " (Origen, Destino, Carga_idCarga, Camion_idCamion)"
                + " values ('"
                + ruta.getOrigen() + "','"
                + ruta.getDestino() + "',"
                + ruta.getCodDesCarga() + ",'"
                + ruta.getPatenteCamion() + "')");

        System.out.println("SQL:" + cnn.getSentenciaSQL());
        cnn.conectar();
        cnn.cerrarConexion();
    }
}
